/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package jogo_da_velha_romulo;

/**
 *
 * @author Rômulo M S
 */
public class Jogadas extends Tabuleiro {

    public boolean setJogada(int linha, int coluna, String op) { // qual linha e qual coluna eu vou inserir o X ou o O
        if (linha < tabuleiro.length && coluna < tabuleiro[linha].length) // testa se não estrapola o espaço da matriz
        {
            if (tabuleiro[linha][coluna] == " ") // se onde o jogador quiser jogar está vazio, pode marcar com a string que ele quer 
            {
                tabuleiro[linha][coluna] = op; // insere o X ou o O do jogador naquela linha e naquela coluna que ele solicitou
                return true;
            }
        }
        return false;

    }


    public boolean confereJogadaLinha() { // confere os resultados de cada linha, para ver se tem vencedor
        for (int l = 0; l < 3; l++) // percorre as linhas
        {
            if (tabuleiro[l][0] == "X" && tabuleiro[l][1] == "X" && tabuleiro[l][2] == "X") // verifica se é X
            {
                System.out.print("Jogador 2 ganhou!!");
                return true;
            }
            if (tabuleiro[l][0] == "O" && tabuleiro[l][1] == "O" && tabuleiro[l][2] == "O") // verifica se é O
            {
                System.out.print("Jogador 1 ganhou!!");
                return true;
            }
        }
        return false;
    }

    public boolean confereJogadaColuna() { // confere os resultados de cada coluna, para ver se tem vencedor
        for (int c = 0; c < 3; c++) // percorre as colunas
        {
            if (tabuleiro[0][c] == "X" && tabuleiro[1][c] == "X" && tabuleiro[2][c] == "X") // verifica se é X
            {
                System.out.print("Jogador 2 ganhou!!");
                return true;
            }
            if (tabuleiro[0][c] == "O" && tabuleiro[1][c] == "O" && tabuleiro[2][c] == "O") // verifica se é O
            {
                System.out.print("Jogador 1 ganhou!!");
                return true;
            }
        }
        return false;

    }

    public boolean confereJogadaDiagonal() {
        if (tabuleiro[0][0] == "X" && tabuleiro[1][1] == "X" && tabuleiro[2][2] == "X") {
            System.out.print("Jogador 2 ganhou!!");
            return true;
        }
        if (tabuleiro[0][0] == "O" && tabuleiro[1][1] == "O" && tabuleiro[2][2] == "O") {
            System.out.print("Jogador 1 ganhou!!");
            return true;
        }
        if (tabuleiro[0][2] == "X" && tabuleiro[1][1] == "X" && tabuleiro[2][0] == "X") {
            System.out.print("Jogador 2 ganhou!!");
            return true;
        }
        if (tabuleiro[0][2] == "O" && tabuleiro[1][1] == "O" && tabuleiro[2][0] == "O") {
            System.out.print("Jogador 1 ganhou!!");
            return true;
        }

        return false;
    }

    public boolean temosUmGanhador() // função que verifica se temos um ganhador
    {                // chama todas as funções que verifica o tabuleiro
        if (confereJogadaColuna()) {
            System.out.print("Parabéns!!!");
            return true;
        } else if (confereJogadaDiagonal()) {
            System.out.print("Parabéns!!");
            return true;
        } else if (confereJogadaLinha()) {
            System.out.print("Parabéns!!");
            return true;
        }
        return false;
    }
}
